home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1995 November / EnigmA AMIGA RUN 02 (1995)(G.R. Edizioni)(IT)[!][issue 1995-11][Skylink CD].iso / earcd / program / misc / bgui12.lha / Classes / PaletteClass / testpalette.c < prev    next >
C/C++ Source or Header  |  1995-08-10  |  4KB  |  169 lines

  1. ;/* Execute me to compile with DICE V3.0
  2. dcc testpalette.c -3.0 -mi -ms -proto -lpaletteclass.o -lbgui
  3. quit
  4. */
  5. /*
  6.  *    TESTPALETTE.C
  7.  *
  8.  *    (C) Copyright 1995 Jaba Development.
  9.  *    (C) Copyright 1995 Jan van den Baard.
  10.  *        All Rights Reserved.
  11.  */
  12.  
  13. #include <exec/types.h>
  14. #include <libraries/bgui.h>
  15. #include <libraries/bgui_macros.h>
  16.  
  17. #include <clib/alib_protos.h>
  18.  
  19. #include <proto/exec.h>
  20. #include <proto/intuition.h>
  21. #include <proto/bgui.h>
  22.  
  23. #include "paletteclass.h"
  24.  
  25. /*
  26.  *    Object ID.
  27.  */
  28. #define ID_QUIT                 1
  29.  
  30. /*
  31.  *    Map-lists.
  32.  */
  33. ULONG p2f[]  = { PALETTE_CurrentColor, FRM_BackPen,        TAG_END };
  34. ULONG p2fs[] = { PALETTE_CurrentColor, FRM_SelectedBackPen, TAG_END };
  35. ULONG p2l[]  = { PALETTE_CurrentColor, LAB_Pen,             TAG_END };
  36. ULONG p2ls[] = { PALETTE_CurrentColor, LAB_SelectedPen,     TAG_END };
  37.  
  38. /*
  39.  *    Library base and class base.
  40.  */
  41. struct Library *BGUIBase;
  42. Class           *PaletteClass;
  43.  
  44. int main( int argc, char **argv )
  45. {
  46.     struct Window        *window;
  47.     Object            *WO_Window, *GO_Quit, *GO_B, *GO_Pal[ 4 ];
  48.     ULONG             signal, rc, tmp = 0, a;
  49.     UWORD             defpens[ 4 ] = { 0, 3, 1, 1 };
  50.     BOOL             running = TRUE;
  51.  
  52.     /*
  53.      *    Open BGUI.
  54.      */
  55.     if ( BGUIBase = OpenLibrary( BGUINAME, BGUIVERSION )) {
  56.         /*
  57.          *    Initialize the paletteclass.
  58.          */
  59.         if ( PaletteClass = InitPaletteClass()) {
  60.             /*
  61.              *    I assume a depth of three
  62.              *    (8 colors) here for simplicity.
  63.              */
  64.             for ( a = 0; a < 4; a++ )
  65.                 GO_Pal[ a ] = NewObject( PaletteClass, NULL, FRM_Type,                FRTYPE_BUTTON,
  66.                                          FRM_Recessed,            TRUE,
  67.                                          PALETTE_Depth,            3,
  68.                                          PALETTE_CurrentColor,        defpens[ a ],
  69.                                          TAG_END );
  70.             /*
  71.              *    Create the window object.
  72.              */
  73.             WO_Window = WindowObject,
  74.                 WINDOW_Title,        "PaletteClass Demo",
  75.                 WINDOW_AutoAspect,    TRUE,
  76.                 WINDOW_SmartRefresh,    TRUE,
  77.                 WINDOW_RMBTrap,         TRUE,
  78.                 WINDOW_IDCMP,        IDCMP_MOUSEMOVE,
  79.                 WINDOW_MasterGroup,
  80.                     VGroupObject, HOffset( 4 ), VOffset( 4 ), Spacing( 4 ),
  81.                         GROUP_BackFill,         SHINE_RASTER,
  82.                         StartMember,
  83.                             InfoFixed( NULL, ISEQ_C
  84.                                      "As you can see the colors of the below button\n"
  85.                                      "are normal but when you change the colors with\n"
  86.                                      "the palette objects the colors of the button change.",
  87.                                      NULL, 3 ),
  88.                         EndMember,
  89.                         StartMember,
  90.                             HGroupObject, HOffset( 4 ), VOffset( 4 ), Spacing( 4 ),
  91.                                 FRM_Type,        FRTYPE_BUTTON,
  92.                                 FRM_Recessed,        TRUE,
  93.                                 StartMember, GO_B = Button( "Palette Demo", 0 ), EndMember,
  94.                             EndObject, FixMinHeight,
  95.                         EndMember,
  96.                         StartMember,
  97.                             HGroupObject, HOffset( 4 ), VOffset( 4 ), Spacing( 4 ),
  98.                                 FRM_Type,        FRTYPE_BUTTON,
  99.                                 FRM_Recessed,        TRUE,
  100.                                 StartMember,
  101.                                     VGroupObject, Spacing( 4 ),
  102.                                         LAB_Label,    "Background:",
  103.                                         LAB_Place,    PLACE_ABOVE,
  104.                                         StartMember, GO_Pal[ 0 ], EndMember,
  105.                                         StartMember, GO_Pal[ 1 ], EndMember,
  106.                                     EndObject,
  107.                                 EndMember,
  108.                                 StartMember,
  109.                                     VGroupObject, Spacing( 4 ),
  110.                                         LAB_Label,    "Label:",
  111.                                         LAB_Place,    PLACE_ABOVE,
  112.                                         StartMember, GO_Pal[ 2 ], EndMember,
  113.                                         StartMember, GO_Pal[ 3 ], EndMember,
  114.                                     EndObject,
  115.                                 EndMember,
  116.                             EndObject,
  117.                         EndMember,
  118.                         StartMember,
  119.                             HGroupObject,
  120.                                 VarSpace( DEFAULT_WEIGHT ),
  121.                                 StartMember, GO_Quit = KeyButton( "_Quit", ID_QUIT ), EndMember,
  122.                                 VarSpace( DEFAULT_WEIGHT ),
  123.                             EndObject, FixMinHeight,
  124.                         EndMember,
  125.                     EndObject,
  126.             EndObject;
  127.  
  128.             /*
  129.             **    Object created OK?
  130.             **/
  131.             if ( WO_Window ) {
  132.                 tmp += GadgetKey( WO_Window, GO_Quit,  "q" );
  133.                 tmp += AddMap( GO_Pal[ 0 ], GO_B, p2f  );
  134.                 tmp += AddMap( GO_Pal[ 1 ], GO_B, p2fs );
  135.                 tmp += AddMap( GO_Pal[ 2 ], GO_B, p2l  );
  136.                 tmp += AddMap( GO_Pal[ 3 ], GO_B, p2ls );
  137.                 if ( tmp == 5 ) {
  138.                     if ( window = WindowOpen( WO_Window )) {
  139.                         GetAttr( WINDOW_SigMask, WO_Window, &signal );
  140.                         do {
  141.                             Wait( signal );
  142.                             while (( rc = HandleEvent( WO_Window )) != WMHI_NOMORE ) {
  143.                                 switch ( rc ) {
  144.  
  145.                                     case    WMHI_CLOSEWINDOW:
  146.                                     case    ID_QUIT:
  147.                                         running = FALSE;
  148.                                         break;
  149.                                 }
  150.                             }
  151.                         } while ( running );
  152.                     }
  153.                 }
  154.                 DisposeObject( WO_Window );
  155.             }
  156.             FreePaletteClass( PaletteClass );
  157.         }
  158.         CloseLibrary( BGUIBase );
  159.     }
  160. }
  161.  
  162. #ifdef _DCC
  163. int wbmain( struct WBStartup *wbs )
  164. {
  165.     return( main( 0, wbs ));
  166. }
  167. #endif
  168.  
  169.